package com.zhuiyun.project.api.article.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.util.Date;

/**
 * @ClassName Article
 * @Description TODO 文章信息表 毛毅卓
 * @Author maomao
 * @Date 2023/6/6 8:34
 **/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@Table(name = "article")
public class Article {
    //id
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

// 用户外键
    private Integer userId;


    //文章标题
    private String articleTitle;

    //文字内容
    private String articleContent;

    //图片
    private String images;

    //视频
    private String video;

    //发布时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date publishTime;


    //公开状态 (1)发布 (2)未发布
    private Integer isPublished;

    //审核状态 (1)待审核 (2)审核通过 (3)审核不通过
    private Integer approvalStatus;

    //是否存為草稿 (1)保存 (2)未保存
    private Integer isDraftSaved;

    //标识文章是否隱藏 (1)隱藏 (2)不隱藏
    private Integer isHidden;

    //创建时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date createTime;

    //修改时间
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date updateTime;

    //删除标识
    private Integer delFlag;

    //标签id
    private Integer labelId;
    //用户姓名
    @Transient
    private String userName;
    //文章标签
    @Transient
    private String dictLabel;
}
